package com.example.demo.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class UserExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public UserExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        protected void addCriterionForJDBCDate(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value.getTime()), property);
        }

        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                dateList.add(new java.sql.Date(iter.next().getTime()));
            }
            addCriterion(condition, dateList, property);
        }

        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
        }

        public Criteria andUserIdIsNull() {
            addCriterion("USER_ID is null");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNotNull() {
            addCriterion("USER_ID is not null");
            return (Criteria) this;
        }

        public Criteria andUserIdEqualTo(Integer value) {
            addCriterion("USER_ID =", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotEqualTo(Integer value) {
            addCriterion("USER_ID <>", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThan(Integer value) {
            addCriterion("USER_ID >", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("USER_ID >=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThan(Integer value) {
            addCriterion("USER_ID <", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThanOrEqualTo(Integer value) {
            addCriterion("USER_ID <=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdIn(List<Integer> values) {
            addCriterion("USER_ID in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotIn(List<Integer> values) {
            addCriterion("USER_ID not in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdBetween(Integer value1, Integer value2) {
            addCriterion("USER_ID between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotBetween(Integer value1, Integer value2) {
            addCriterion("USER_ID not between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumIsNull() {
            addCriterion("USER_PHONE_NUM is null");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumIsNotNull() {
            addCriterion("USER_PHONE_NUM is not null");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumEqualTo(String value) {
            addCriterion("USER_PHONE_NUM =", value, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumNotEqualTo(String value) {
            addCriterion("USER_PHONE_NUM <>", value, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumGreaterThan(String value) {
            addCriterion("USER_PHONE_NUM >", value, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumGreaterThanOrEqualTo(String value) {
            addCriterion("USER_PHONE_NUM >=", value, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumLessThan(String value) {
            addCriterion("USER_PHONE_NUM <", value, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumLessThanOrEqualTo(String value) {
            addCriterion("USER_PHONE_NUM <=", value, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumLike(String value) {
            addCriterion("USER_PHONE_NUM like", value, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumNotLike(String value) {
            addCriterion("USER_PHONE_NUM not like", value, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumIn(List<String> values) {
            addCriterion("USER_PHONE_NUM in", values, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumNotIn(List<String> values) {
            addCriterion("USER_PHONE_NUM not in", values, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumBetween(String value1, String value2) {
            addCriterion("USER_PHONE_NUM between", value1, value2, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumNotBetween(String value1, String value2) {
            addCriterion("USER_PHONE_NUM not between", value1, value2, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPasswordIsNull() {
            addCriterion("USER_PASSWORD is null");
            return (Criteria) this;
        }

        public Criteria andUserPasswordIsNotNull() {
            addCriterion("USER_PASSWORD is not null");
            return (Criteria) this;
        }

        public Criteria andUserPasswordEqualTo(String value) {
            addCriterion("USER_PASSWORD =", value, "userPassword");
            return (Criteria) this;
        }

        public Criteria andUserPasswordNotEqualTo(String value) {
            addCriterion("USER_PASSWORD <>", value, "userPassword");
            return (Criteria) this;
        }

        public Criteria andUserPasswordGreaterThan(String value) {
            addCriterion("USER_PASSWORD >", value, "userPassword");
            return (Criteria) this;
        }

        public Criteria andUserPasswordGreaterThanOrEqualTo(String value) {
            addCriterion("USER_PASSWORD >=", value, "userPassword");
            return (Criteria) this;
        }

        public Criteria andUserPasswordLessThan(String value) {
            addCriterion("USER_PASSWORD <", value, "userPassword");
            return (Criteria) this;
        }

        public Criteria andUserPasswordLessThanOrEqualTo(String value) {
            addCriterion("USER_PASSWORD <=", value, "userPassword");
            return (Criteria) this;
        }

        public Criteria andUserPasswordLike(String value) {
            addCriterion("USER_PASSWORD like", value, "userPassword");
            return (Criteria) this;
        }

        public Criteria andUserPasswordNotLike(String value) {
            addCriterion("USER_PASSWORD not like", value, "userPassword");
            return (Criteria) this;
        }

        public Criteria andUserPasswordIn(List<String> values) {
            addCriterion("USER_PASSWORD in", values, "userPassword");
            return (Criteria) this;
        }

        public Criteria andUserPasswordNotIn(List<String> values) {
            addCriterion("USER_PASSWORD not in", values, "userPassword");
            return (Criteria) this;
        }

        public Criteria andUserPasswordBetween(String value1, String value2) {
            addCriterion("USER_PASSWORD between", value1, value2, "userPassword");
            return (Criteria) this;
        }

        public Criteria andUserPasswordNotBetween(String value1, String value2) {
            addCriterion("USER_PASSWORD not between", value1, value2, "userPassword");
            return (Criteria) this;
        }

        public Criteria andUserNameIsNull() {
            addCriterion("USER_NAME is null");
            return (Criteria) this;
        }

        public Criteria andUserNameIsNotNull() {
            addCriterion("USER_NAME is not null");
            return (Criteria) this;
        }

        public Criteria andUserNameEqualTo(String value) {
            addCriterion("USER_NAME =", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameNotEqualTo(String value) {
            addCriterion("USER_NAME <>", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameGreaterThan(String value) {
            addCriterion("USER_NAME >", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameGreaterThanOrEqualTo(String value) {
            addCriterion("USER_NAME >=", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameLessThan(String value) {
            addCriterion("USER_NAME <", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameLessThanOrEqualTo(String value) {
            addCriterion("USER_NAME <=", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameLike(String value) {
            addCriterion("USER_NAME like", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameNotLike(String value) {
            addCriterion("USER_NAME not like", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameIn(List<String> values) {
            addCriterion("USER_NAME in", values, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameNotIn(List<String> values) {
            addCriterion("USER_NAME not in", values, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameBetween(String value1, String value2) {
            addCriterion("USER_NAME between", value1, value2, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameNotBetween(String value1, String value2) {
            addCriterion("USER_NAME not between", value1, value2, "userName");
            return (Criteria) this;
        }

        public Criteria andUserMailIsNull() {
            addCriterion("USER_MAIL is null");
            return (Criteria) this;
        }

        public Criteria andUserMailIsNotNull() {
            addCriterion("USER_MAIL is not null");
            return (Criteria) this;
        }

        public Criteria andUserMailEqualTo(String value) {
            addCriterion("USER_MAIL =", value, "userMail");
            return (Criteria) this;
        }

        public Criteria andUserMailNotEqualTo(String value) {
            addCriterion("USER_MAIL <>", value, "userMail");
            return (Criteria) this;
        }

        public Criteria andUserMailGreaterThan(String value) {
            addCriterion("USER_MAIL >", value, "userMail");
            return (Criteria) this;
        }

        public Criteria andUserMailGreaterThanOrEqualTo(String value) {
            addCriterion("USER_MAIL >=", value, "userMail");
            return (Criteria) this;
        }

        public Criteria andUserMailLessThan(String value) {
            addCriterion("USER_MAIL <", value, "userMail");
            return (Criteria) this;
        }

        public Criteria andUserMailLessThanOrEqualTo(String value) {
            addCriterion("USER_MAIL <=", value, "userMail");
            return (Criteria) this;
        }

        public Criteria andUserMailLike(String value) {
            addCriterion("USER_MAIL like", value, "userMail");
            return (Criteria) this;
        }

        public Criteria andUserMailNotLike(String value) {
            addCriterion("USER_MAIL not like", value, "userMail");
            return (Criteria) this;
        }

        public Criteria andUserMailIn(List<String> values) {
            addCriterion("USER_MAIL in", values, "userMail");
            return (Criteria) this;
        }

        public Criteria andUserMailNotIn(List<String> values) {
            addCriterion("USER_MAIL not in", values, "userMail");
            return (Criteria) this;
        }

        public Criteria andUserMailBetween(String value1, String value2) {
            addCriterion("USER_MAIL between", value1, value2, "userMail");
            return (Criteria) this;
        }

        public Criteria andUserMailNotBetween(String value1, String value2) {
            addCriterion("USER_MAIL not between", value1, value2, "userMail");
            return (Criteria) this;
        }

        public Criteria andUserQqIsNull() {
            addCriterion("USER_QQ is null");
            return (Criteria) this;
        }

        public Criteria andUserQqIsNotNull() {
            addCriterion("USER_QQ is not null");
            return (Criteria) this;
        }

        public Criteria andUserQqEqualTo(Integer value) {
            addCriterion("USER_QQ =", value, "userQq");
            return (Criteria) this;
        }

        public Criteria andUserQqNotEqualTo(Integer value) {
            addCriterion("USER_QQ <>", value, "userQq");
            return (Criteria) this;
        }

        public Criteria andUserQqGreaterThan(Integer value) {
            addCriterion("USER_QQ >", value, "userQq");
            return (Criteria) this;
        }

        public Criteria andUserQqGreaterThanOrEqualTo(Integer value) {
            addCriterion("USER_QQ >=", value, "userQq");
            return (Criteria) this;
        }

        public Criteria andUserQqLessThan(Integer value) {
            addCriterion("USER_QQ <", value, "userQq");
            return (Criteria) this;
        }

        public Criteria andUserQqLessThanOrEqualTo(Integer value) {
            addCriterion("USER_QQ <=", value, "userQq");
            return (Criteria) this;
        }

        public Criteria andUserQqIn(List<Integer> values) {
            addCriterion("USER_QQ in", values, "userQq");
            return (Criteria) this;
        }

        public Criteria andUserQqNotIn(List<Integer> values) {
            addCriterion("USER_QQ not in", values, "userQq");
            return (Criteria) this;
        }

        public Criteria andUserQqBetween(Integer value1, Integer value2) {
            addCriterion("USER_QQ between", value1, value2, "userQq");
            return (Criteria) this;
        }

        public Criteria andUserQqNotBetween(Integer value1, Integer value2) {
            addCriterion("USER_QQ not between", value1, value2, "userQq");
            return (Criteria) this;
        }

        public Criteria andUserCompanyIsNull() {
            addCriterion("USER_COMPANY is null");
            return (Criteria) this;
        }

        public Criteria andUserCompanyIsNotNull() {
            addCriterion("USER_COMPANY is not null");
            return (Criteria) this;
        }

        public Criteria andUserCompanyEqualTo(String value) {
            addCriterion("USER_COMPANY =", value, "userCompany");
            return (Criteria) this;
        }

        public Criteria andUserCompanyNotEqualTo(String value) {
            addCriterion("USER_COMPANY <>", value, "userCompany");
            return (Criteria) this;
        }

        public Criteria andUserCompanyGreaterThan(String value) {
            addCriterion("USER_COMPANY >", value, "userCompany");
            return (Criteria) this;
        }

        public Criteria andUserCompanyGreaterThanOrEqualTo(String value) {
            addCriterion("USER_COMPANY >=", value, "userCompany");
            return (Criteria) this;
        }

        public Criteria andUserCompanyLessThan(String value) {
            addCriterion("USER_COMPANY <", value, "userCompany");
            return (Criteria) this;
        }

        public Criteria andUserCompanyLessThanOrEqualTo(String value) {
            addCriterion("USER_COMPANY <=", value, "userCompany");
            return (Criteria) this;
        }

        public Criteria andUserCompanyLike(String value) {
            addCriterion("USER_COMPANY like", value, "userCompany");
            return (Criteria) this;
        }

        public Criteria andUserCompanyNotLike(String value) {
            addCriterion("USER_COMPANY not like", value, "userCompany");
            return (Criteria) this;
        }

        public Criteria andUserCompanyIn(List<String> values) {
            addCriterion("USER_COMPANY in", values, "userCompany");
            return (Criteria) this;
        }

        public Criteria andUserCompanyNotIn(List<String> values) {
            addCriterion("USER_COMPANY not in", values, "userCompany");
            return (Criteria) this;
        }

        public Criteria andUserCompanyBetween(String value1, String value2) {
            addCriterion("USER_COMPANY between", value1, value2, "userCompany");
            return (Criteria) this;
        }

        public Criteria andUserCompanyNotBetween(String value1, String value2) {
            addCriterion("USER_COMPANY not between", value1, value2, "userCompany");
            return (Criteria) this;
        }

        public Criteria andUserActivityIsNull() {
            addCriterion("USER_ACTIVITY is null");
            return (Criteria) this;
        }

        public Criteria andUserActivityIsNotNull() {
            addCriterion("USER_ACTIVITY is not null");
            return (Criteria) this;
        }

        public Criteria andUserActivityEqualTo(String value) {
            addCriterion("USER_ACTIVITY =", value, "userActivity");
            return (Criteria) this;
        }

        public Criteria andUserActivityNotEqualTo(String value) {
            addCriterion("USER_ACTIVITY <>", value, "userActivity");
            return (Criteria) this;
        }

        public Criteria andUserActivityGreaterThan(String value) {
            addCriterion("USER_ACTIVITY >", value, "userActivity");
            return (Criteria) this;
        }

        public Criteria andUserActivityGreaterThanOrEqualTo(String value) {
            addCriterion("USER_ACTIVITY >=", value, "userActivity");
            return (Criteria) this;
        }

        public Criteria andUserActivityLessThan(String value) {
            addCriterion("USER_ACTIVITY <", value, "userActivity");
            return (Criteria) this;
        }

        public Criteria andUserActivityLessThanOrEqualTo(String value) {
            addCriterion("USER_ACTIVITY <=", value, "userActivity");
            return (Criteria) this;
        }

        public Criteria andUserActivityLike(String value) {
            addCriterion("USER_ACTIVITY like", value, "userActivity");
            return (Criteria) this;
        }

        public Criteria andUserActivityNotLike(String value) {
            addCriterion("USER_ACTIVITY not like", value, "userActivity");
            return (Criteria) this;
        }

        public Criteria andUserActivityIn(List<String> values) {
            addCriterion("USER_ACTIVITY in", values, "userActivity");
            return (Criteria) this;
        }

        public Criteria andUserActivityNotIn(List<String> values) {
            addCriterion("USER_ACTIVITY not in", values, "userActivity");
            return (Criteria) this;
        }

        public Criteria andUserActivityBetween(String value1, String value2) {
            addCriterion("USER_ACTIVITY between", value1, value2, "userActivity");
            return (Criteria) this;
        }

        public Criteria andUserActivityNotBetween(String value1, String value2) {
            addCriterion("USER_ACTIVITY not between", value1, value2, "userActivity");
            return (Criteria) this;
        }

        public Criteria andUserStarsIsNull() {
            addCriterion("USER_STARS is null");
            return (Criteria) this;
        }

        public Criteria andUserStarsIsNotNull() {
            addCriterion("USER_STARS is not null");
            return (Criteria) this;
        }

        public Criteria andUserStarsEqualTo(Integer value) {
            addCriterion("USER_STARS =", value, "userStars");
            return (Criteria) this;
        }

        public Criteria andUserStarsNotEqualTo(Integer value) {
            addCriterion("USER_STARS <>", value, "userStars");
            return (Criteria) this;
        }

        public Criteria andUserStarsGreaterThan(Integer value) {
            addCriterion("USER_STARS >", value, "userStars");
            return (Criteria) this;
        }

        public Criteria andUserStarsGreaterThanOrEqualTo(Integer value) {
            addCriterion("USER_STARS >=", value, "userStars");
            return (Criteria) this;
        }

        public Criteria andUserStarsLessThan(Integer value) {
            addCriterion("USER_STARS <", value, "userStars");
            return (Criteria) this;
        }

        public Criteria andUserStarsLessThanOrEqualTo(Integer value) {
            addCriterion("USER_STARS <=", value, "userStars");
            return (Criteria) this;
        }

        public Criteria andUserStarsIn(List<Integer> values) {
            addCriterion("USER_STARS in", values, "userStars");
            return (Criteria) this;
        }

        public Criteria andUserStarsNotIn(List<Integer> values) {
            addCriterion("USER_STARS not in", values, "userStars");
            return (Criteria) this;
        }

        public Criteria andUserStarsBetween(Integer value1, Integer value2) {
            addCriterion("USER_STARS between", value1, value2, "userStars");
            return (Criteria) this;
        }

        public Criteria andUserStarsNotBetween(Integer value1, Integer value2) {
            addCriterion("USER_STARS not between", value1, value2, "userStars");
            return (Criteria) this;
        }

        public Criteria andUserFollowersIsNull() {
            addCriterion("USER_FOLLOWERS is null");
            return (Criteria) this;
        }

        public Criteria andUserFollowersIsNotNull() {
            addCriterion("USER_FOLLOWERS is not null");
            return (Criteria) this;
        }

        public Criteria andUserFollowersEqualTo(Integer value) {
            addCriterion("USER_FOLLOWERS =", value, "userFollowers");
            return (Criteria) this;
        }

        public Criteria andUserFollowersNotEqualTo(Integer value) {
            addCriterion("USER_FOLLOWERS <>", value, "userFollowers");
            return (Criteria) this;
        }

        public Criteria andUserFollowersGreaterThan(Integer value) {
            addCriterion("USER_FOLLOWERS >", value, "userFollowers");
            return (Criteria) this;
        }

        public Criteria andUserFollowersGreaterThanOrEqualTo(Integer value) {
            addCriterion("USER_FOLLOWERS >=", value, "userFollowers");
            return (Criteria) this;
        }

        public Criteria andUserFollowersLessThan(Integer value) {
            addCriterion("USER_FOLLOWERS <", value, "userFollowers");
            return (Criteria) this;
        }

        public Criteria andUserFollowersLessThanOrEqualTo(Integer value) {
            addCriterion("USER_FOLLOWERS <=", value, "userFollowers");
            return (Criteria) this;
        }

        public Criteria andUserFollowersIn(List<Integer> values) {
            addCriterion("USER_FOLLOWERS in", values, "userFollowers");
            return (Criteria) this;
        }

        public Criteria andUserFollowersNotIn(List<Integer> values) {
            addCriterion("USER_FOLLOWERS not in", values, "userFollowers");
            return (Criteria) this;
        }

        public Criteria andUserFollowersBetween(Integer value1, Integer value2) {
            addCriterion("USER_FOLLOWERS between", value1, value2, "userFollowers");
            return (Criteria) this;
        }

        public Criteria andUserFollowersNotBetween(Integer value1, Integer value2) {
            addCriterion("USER_FOLLOWERS not between", value1, value2, "userFollowers");
            return (Criteria) this;
        }

        public Criteria andUserLoginDateIsNull() {
            addCriterion("USER_LOGIN_DATE is null");
            return (Criteria) this;
        }

        public Criteria andUserLoginDateIsNotNull() {
            addCriterion("USER_LOGIN_DATE is not null");
            return (Criteria) this;
        }

        public Criteria andUserLoginDateEqualTo(Date value) {
            addCriterion("USER_LOGIN_DATE =", value, "userLoginDate");
            return (Criteria) this;
        }

        public Criteria andUserLoginDateNotEqualTo(Date value) {
            addCriterion("USER_LOGIN_DATE <>", value, "userLoginDate");
            return (Criteria) this;
        }

        public Criteria andUserLoginDateGreaterThan(Date value) {
            addCriterion("USER_LOGIN_DATE >", value, "userLoginDate");
            return (Criteria) this;
        }

        public Criteria andUserLoginDateGreaterThanOrEqualTo(Date value) {
            addCriterion("USER_LOGIN_DATE >=", value, "userLoginDate");
            return (Criteria) this;
        }

        public Criteria andUserLoginDateLessThan(Date value) {
            addCriterion("USER_LOGIN_DATE <", value, "userLoginDate");
            return (Criteria) this;
        }

        public Criteria andUserLoginDateLessThanOrEqualTo(Date value) {
            addCriterion("USER_LOGIN_DATE <=", value, "userLoginDate");
            return (Criteria) this;
        }

        public Criteria andUserLoginDateIn(List<Date> values) {
            addCriterion("USER_LOGIN_DATE in", values, "userLoginDate");
            return (Criteria) this;
        }

        public Criteria andUserLoginDateNotIn(List<Date> values) {
            addCriterion("USER_LOGIN_DATE not in", values, "userLoginDate");
            return (Criteria) this;
        }

        public Criteria andUserLoginDateBetween(Date value1, Date value2) {
            addCriterion("USER_LOGIN_DATE between", value1, value2, "userLoginDate");
            return (Criteria) this;
        }

        public Criteria andUserLoginDateNotBetween(Date value1, Date value2) {
            addCriterion("USER_LOGIN_DATE not between", value1, value2, "userLoginDate");
            return (Criteria) this;
        }

        public Criteria andUserIntroduceIsNull() {
            addCriterion("USER_INTRODUCE is null");
            return (Criteria) this;
        }

        public Criteria andUserIntroduceIsNotNull() {
            addCriterion("USER_INTRODUCE is not null");
            return (Criteria) this;
        }

        public Criteria andUserIntroduceEqualTo(String value) {
            addCriterion("USER_INTRODUCE =", value, "userIntroduce");
            return (Criteria) this;
        }

        public Criteria andUserIntroduceNotEqualTo(String value) {
            addCriterion("USER_INTRODUCE <>", value, "userIntroduce");
            return (Criteria) this;
        }

        public Criteria andUserIntroduceGreaterThan(String value) {
            addCriterion("USER_INTRODUCE >", value, "userIntroduce");
            return (Criteria) this;
        }

        public Criteria andUserIntroduceGreaterThanOrEqualTo(String value) {
            addCriterion("USER_INTRODUCE >=", value, "userIntroduce");
            return (Criteria) this;
        }

        public Criteria andUserIntroduceLessThan(String value) {
            addCriterion("USER_INTRODUCE <", value, "userIntroduce");
            return (Criteria) this;
        }

        public Criteria andUserIntroduceLessThanOrEqualTo(String value) {
            addCriterion("USER_INTRODUCE <=", value, "userIntroduce");
            return (Criteria) this;
        }

        public Criteria andUserIntroduceLike(String value) {
            addCriterion("USER_INTRODUCE like", value, "userIntroduce");
            return (Criteria) this;
        }

        public Criteria andUserIntroduceNotLike(String value) {
            addCriterion("USER_INTRODUCE not like", value, "userIntroduce");
            return (Criteria) this;
        }

        public Criteria andUserIntroduceIn(List<String> values) {
            addCriterion("USER_INTRODUCE in", values, "userIntroduce");
            return (Criteria) this;
        }

        public Criteria andUserIntroduceNotIn(List<String> values) {
            addCriterion("USER_INTRODUCE not in", values, "userIntroduce");
            return (Criteria) this;
        }

        public Criteria andUserIntroduceBetween(String value1, String value2) {
            addCriterion("USER_INTRODUCE between", value1, value2, "userIntroduce");
            return (Criteria) this;
        }

        public Criteria andUserIntroduceNotBetween(String value1, String value2) {
            addCriterion("USER_INTRODUCE not between", value1, value2, "userIntroduce");
            return (Criteria) this;
        }

        public Criteria andUserBirthdayIsNull() {
            addCriterion("USER_BIRTHDAY is null");
            return (Criteria) this;
        }

        public Criteria andUserBirthdayIsNotNull() {
            addCriterion("USER_BIRTHDAY is not null");
            return (Criteria) this;
        }

        public Criteria andUserBirthdayEqualTo(Date value) {
            addCriterionForJDBCDate("USER_BIRTHDAY =", value, "userBirthday");
            return (Criteria) this;
        }

        public Criteria andUserBirthdayNotEqualTo(Date value) {
            addCriterionForJDBCDate("USER_BIRTHDAY <>", value, "userBirthday");
            return (Criteria) this;
        }

        public Criteria andUserBirthdayGreaterThan(Date value) {
            addCriterionForJDBCDate("USER_BIRTHDAY >", value, "userBirthday");
            return (Criteria) this;
        }

        public Criteria andUserBirthdayGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("USER_BIRTHDAY >=", value, "userBirthday");
            return (Criteria) this;
        }

        public Criteria andUserBirthdayLessThan(Date value) {
            addCriterionForJDBCDate("USER_BIRTHDAY <", value, "userBirthday");
            return (Criteria) this;
        }

        public Criteria andUserBirthdayLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("USER_BIRTHDAY <=", value, "userBirthday");
            return (Criteria) this;
        }

        public Criteria andUserBirthdayIn(List<Date> values) {
            addCriterionForJDBCDate("USER_BIRTHDAY in", values, "userBirthday");
            return (Criteria) this;
        }

        public Criteria andUserBirthdayNotIn(List<Date> values) {
            addCriterionForJDBCDate("USER_BIRTHDAY not in", values, "userBirthday");
            return (Criteria) this;
        }

        public Criteria andUserBirthdayBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("USER_BIRTHDAY between", value1, value2, "userBirthday");
            return (Criteria) this;
        }

        public Criteria andUserBirthdayNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("USER_BIRTHDAY not between", value1, value2, "userBirthday");
            return (Criteria) this;
        }

        public Criteria andUserWatchesIsNull() {
            addCriterion("USER_WATCHES is null");
            return (Criteria) this;
        }

        public Criteria andUserWatchesIsNotNull() {
            addCriterion("USER_WATCHES is not null");
            return (Criteria) this;
        }

        public Criteria andUserWatchesEqualTo(Integer value) {
            addCriterion("USER_WATCHES =", value, "userWatches");
            return (Criteria) this;
        }

        public Criteria andUserWatchesNotEqualTo(Integer value) {
            addCriterion("USER_WATCHES <>", value, "userWatches");
            return (Criteria) this;
        }

        public Criteria andUserWatchesGreaterThan(Integer value) {
            addCriterion("USER_WATCHES >", value, "userWatches");
            return (Criteria) this;
        }

        public Criteria andUserWatchesGreaterThanOrEqualTo(Integer value) {
            addCriterion("USER_WATCHES >=", value, "userWatches");
            return (Criteria) this;
        }

        public Criteria andUserWatchesLessThan(Integer value) {
            addCriterion("USER_WATCHES <", value, "userWatches");
            return (Criteria) this;
        }

        public Criteria andUserWatchesLessThanOrEqualTo(Integer value) {
            addCriterion("USER_WATCHES <=", value, "userWatches");
            return (Criteria) this;
        }

        public Criteria andUserWatchesIn(List<Integer> values) {
            addCriterion("USER_WATCHES in", values, "userWatches");
            return (Criteria) this;
        }

        public Criteria andUserWatchesNotIn(List<Integer> values) {
            addCriterion("USER_WATCHES not in", values, "userWatches");
            return (Criteria) this;
        }

        public Criteria andUserWatchesBetween(Integer value1, Integer value2) {
            addCriterion("USER_WATCHES between", value1, value2, "userWatches");
            return (Criteria) this;
        }

        public Criteria andUserWatchesNotBetween(Integer value1, Integer value2) {
            addCriterion("USER_WATCHES not between", value1, value2, "userWatches");
            return (Criteria) this;
        }

        public Criteria andUserGenderIsNull() {
            addCriterion("USER_GENDER is null");
            return (Criteria) this;
        }

        public Criteria andUserGenderIsNotNull() {
            addCriterion("USER_GENDER is not null");
            return (Criteria) this;
        }

        public Criteria andUserGenderEqualTo(String value) {
            addCriterion("USER_GENDER =", value, "userGender");
            return (Criteria) this;
        }

        public Criteria andUserGenderNotEqualTo(String value) {
            addCriterion("USER_GENDER <>", value, "userGender");
            return (Criteria) this;
        }

        public Criteria andUserGenderGreaterThan(String value) {
            addCriterion("USER_GENDER >", value, "userGender");
            return (Criteria) this;
        }

        public Criteria andUserGenderGreaterThanOrEqualTo(String value) {
            addCriterion("USER_GENDER >=", value, "userGender");
            return (Criteria) this;
        }

        public Criteria andUserGenderLessThan(String value) {
            addCriterion("USER_GENDER <", value, "userGender");
            return (Criteria) this;
        }

        public Criteria andUserGenderLessThanOrEqualTo(String value) {
            addCriterion("USER_GENDER <=", value, "userGender");
            return (Criteria) this;
        }

        public Criteria andUserGenderLike(String value) {
            addCriterion("USER_GENDER like", value, "userGender");
            return (Criteria) this;
        }

        public Criteria andUserGenderNotLike(String value) {
            addCriterion("USER_GENDER not like", value, "userGender");
            return (Criteria) this;
        }

        public Criteria andUserGenderIn(List<String> values) {
            addCriterion("USER_GENDER in", values, "userGender");
            return (Criteria) this;
        }

        public Criteria andUserGenderNotIn(List<String> values) {
            addCriterion("USER_GENDER not in", values, "userGender");
            return (Criteria) this;
        }

        public Criteria andUserGenderBetween(String value1, String value2) {
            addCriterion("USER_GENDER between", value1, value2, "userGender");
            return (Criteria) this;
        }

        public Criteria andUserGenderNotBetween(String value1, String value2) {
            addCriterion("USER_GENDER not between", value1, value2, "userGender");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}